/*
2021-7-23
https://www.acwing.com/problem/content/323/
*/
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>

using namespace std;
const int N=15,M=9;
int s[M][M];
double f[M][M][M][M][N];
int n;
double X;

double get(int x1,int y1,int x2,int y2)
{
    double sum=s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]-X;
    return (double)sum*sum/n;
}

double dp(int x1,int y1,int x2,int y2,int k)
{
    auto &t=f[x1][y1][x2][y2][k];
    if(t>=0) return t;
    if(k==1) return get(x1,y1,x2,y2);
    
    t=1e9;
    
    for(int i=x1;i<x2;i++)
    {
        t=min(t,dp(x1,y1,i,y2,k-1)+get(i+1,y1,x2,y2));
        t=min(t,dp(i+1,y1,x2,y2,k-1)+get(x1,y1,i,y2));
    }
    
    for(int i=y1;i<y2;i++)
    {
        t=min(t,dp(x1,y1,x2,i,k-1)+get(x1,i+1,x2,y2));
        t=min(t,dp(x1,i+1,x2,y2,k-1)+get(x1,y1,x2,i));
    }
    return t;
}

int main()
{
    cin>>n;
    for(int i=1;i<=8;i++)
        for(int j=1;j<=8;j++)
        {
            cin>>s[i][j];
            s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
        }
    memset(f,-1,sizeof f);
    X=(double)s[8][8]/n;
    
    printf("%.3lf",sqrt(dp(1,1,8,8,n)));
    
    return 0;
}
